package main.java.person.fjsp.common.entity;

import java.util.List;
import java.util.Map;

public class DataManager {

    /**
     * 作业数量
     */
    private int jobNum;
    /**
     * 机器数
     */
    private int machineNum;
    /**
     * 工序的总数量
     */
    private int operationNum;
    /**
     * 所有工序编号字符串的列表，按顺序排列，0-1，0-2，...，n-1，n-2，n-3
     */
    private List<String> operations;
    /**
     * 工序oij（比如，1-2）及其可选的机器编号
     */
    private Map<String, List<Integer>> operationCodeAndMachineListMap;
    /**
     * 机器k处理工序oij所需的时间 i-j-k -> 3  比如：2-1-3 -》 3表示工序21在机器3上所用的时间
     */
    private Map<String,Integer> operationProcessTimeMap;
    /**
     * 通过operationCode快速找到其在operations中的索引
     */
    private Map<String,Integer> operationCodeAndIndexMap;

    public DataManager(int jobNum, int machineNum, int operationNum,
                       List<String> operations,
                       Map<String, List<Integer>> operationCodeAndMachineListMap,
                       Map<String, Integer> operationProcessTimeMap,
                        Map<String,Integer> operationCodeAndIndexMap) {
        this.jobNum = jobNum;
        this.machineNum = machineNum;
        this.operationNum = operationNum;
        this.operations=operations;
        this.operationCodeAndMachineListMap = operationCodeAndMachineListMap;
        this.operationProcessTimeMap = operationProcessTimeMap;
        this.operationCodeAndIndexMap=operationCodeAndIndexMap;
    }

    public int getJobNum() {
        return jobNum;
    }

    public int getMachineNum() {
        return machineNum;
    }

    public Map<String, List<Integer>> getOperationCodeAndMachineListMap() {
        return operationCodeAndMachineListMap;
    }

    public Map<String, Integer> getOperationProcessTimeMap() {
        return operationProcessTimeMap;
    }

    public int getOperationNum() {
        return operationNum;
    }

    public List<String> getOperations() {
        return operations;
    }

    public void setOperations(List<String> operations) {
        this.operations = operations;
    }

    public Map<String, Integer> getOperationCodeAndIndexMap() {
        return operationCodeAndIndexMap;
    }
}
